#Oracle通过ODBC数据源连接YashanDB

本章节将指导用户于Oracle数据库中配置DBLINK,并通过ODBC数据源连接至YashanDB数据库。用户须确保Oracle服务端和YashanDB ODBC驱动位于同一台机器上。

# 步骤1:配置YashanDB ODBC驱动

Oracle数据库配置DBLINK并连接至YashanDB数据库的操作需要使用ODBC驱动,可通过查看ODBC驱动安装(Linux)自行安装和配置ODBC驱动。

# 步骤2:创建数据源

通过执行vi /etc/odbc.ini命令创建数据源,并写入如下内容,用户名、密码和服务器地址需要根据实际情况修改:

vi /etc/odbc.ini

[YASDBODBC]
Description  = YashanTest
Driver       = YashanDB
SERVER       = 127.0.0.1
PORT         = 1688
USER         = sys
PWD          = sys

# 步骤3:测试连接

通过执行isql -v YASDBODBC命令测试该数据源是否连接成功,如显示Connected则表示数据源连接成功。

# 步骤4:Oracle中配置DBLINK文件

通过执行dg4odbc命令检查dg4odbc驱动是否安装。

找到initdg4odbc.ora文件所在目录,执行以下命令:

cd /stage/hs/admin
touch initYASDBODBC.ora
vi /stage/hs/admin/initYASDBODBC.ora
 
HS_FDS_CONNECT_INFO = YASDBODBC
HS_FDS_TRACE_LEVEL = debug
HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
HS_LANGUAGE = AMERICAN_AMERICA.AL32UTF8
HS_NLS_NCHAR = UCS2
 
SET ODBCINI= /etc/odbc.ini
#保存initYASDBODBC.ora文件

# 步骤5:配置监听文件

  1. /stage/network/admin/listener.ora文件中新增如下内容:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = YASDBODBC)
      (ORACLE_HOME = /stage)
      (PROGRAM = dg4odbc)
    )
  )
  1. /stage/network/admin/tnsnames.ora文件中新增如下内容:
YASDBODBC =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = YASDBODBC)
    )
    (HS = OK)
  )

# 步骤6:重启监听

通过执行如下命令对Oracle监听进行重启:

lsnrctl stop
lsnrctl start
lsnrctl status

重启之后可看到YASDBODBC的实例被监听,且状态为unknown。

通过执行如下命令查看YASDBODBC的监听服务是否开启:

tnsping YASDBODBC

执行如下命令于Oracle数据库中创建DBLINK,用户名及密码需要根据实际情况修改:

DROP DATABASE link YASDBODBC;
CREATE DATABASE link YASDBODBC CONNECT TO "sys" IDENTIFIED BY "sys" USING 'YASDBODBC';

通过如下命令测试DBLINK是否配置成功,查询成功代表dblink配置成功:

SELECT USERNAME,STATUS,TYPE FROM V$SESSION@YASDBODBC;

如果需要在sqlplus验证DBLINK中文支持,需要设置oracle NLS_LANG客户端字符集同终端一致,例如:

export NLS_LANG=american_america.AL32UTF8

# 查看日志

如需跟踪ODBC行为,可执行如下语句:

vi /etc/odbcinst.ini

新增内容,TraceFile为输出的文件路径:

[ODBC]
TraceFile = /home/odbcsql.log
Trace = Yes